package algocasts;

public class P3_towSum {

    // 排序数组中两个数字之和
    public int[] twoSum(int[] nums, int target) {
        // i指向数组第一个，j指向数组最后一个
        int i = 0, j = nums.length - 1;
        while (i < j) {
            // 如果两个指向的数之和大于目标值，右指针左移一位
            if (nums[i] + nums[j] > target) j--;
            // 如果两个指向的数之和小于目标值，左指针右移一位
            else if (nums[i] + nums[j] < target) i++;
            // 两指针指向的数之和等于目标值，直接返回
            else return new int[]{i, j};
        }
        return new int[]{-1, -1};
    }

    public static void main(String[] args) {
        P3_towSum solution = new P3_towSum();
        int[] nums = {1, 2, 5, 7, 11, 15};
        int[] twoSum = solution.twoSum(nums, 9);
        System.out.println(twoSum[0] + ", " + twoSum[1]);
    }
}
